軟體和系統無法避免會出現漏洞。一說起漏洞,有人就會感到氣憤,認為被坑了。其實不然,漏洞的產生是不可避免的。有了漏洞,我們就應該去補救。本文就以漏洞的形成與防治為題,簡單的為大家介紹。
漏洞的形成
大型軟體、系統的編寫,並不是一兩個人就能完成的,而是需要許許多多程式師共同完成。那麼,他們是怎麼工作的呢?他們是將一個軟體或系統分成若干板塊,分工編寫,然後再匯總,測試。最後,修補,發佈。
有人或許會問,為什麼最後要修補呢?其實,這就是一個重要的環節。前面講到要講軟體、系統分成若干板塊,分工編寫。問題就出在分工編寫這個環節:世界上總找不到思維一樣的人,所以有時不免會出現種種問題,且不說“幾不管”的中間地帶,就是在軟體匯總時,為了測試方便,程式師總會留有後門;在測試以後再進行修補……
這些後門,如果一旦疏忽(或是為某種目的故意留下),或是沒有發現,軟體發佈後自然而然就成了漏洞。
還值得一提的就是若干板塊之間的空隙,這裏很容易出現連程式師的都沒想到的漏洞!
還有,“幾不管”地帶,也正是漏洞的溫床!如果,在軟體發佈前沒能及時發現,就為不法之徒提供了便利。
漏洞的另一形成溫床就是網路協定!網路協定有TCP、UDP、ICMP、IGMP等。其實,他們本來的用途是好的,但卻被別人用於不乏的活動:例如,ICMP本來是用於尋找網路相關資訊,後來卻被用於網路嗅探和攻擊;TCP本來是用於網路傳輸,後來卻被用於洩漏用戶資訊……
漏洞的溫床實在太多了,有時並不能完全怪程式師,因為有些東西連他們也無能為力啊!
漏洞的防治
有了漏洞就要補!否則,日後的受害者可能就是自己。例如,微軟就是著名的漏洞王!他同時也是著名的補丁王!有這樣一句話:微軟的補丁,誰人能及!Windows實在太大,太複雜了,所以漏洞多也是可以原諒的。更何況,全世界最精銳的駭客部隊的也喜歡將矛頭直指Windows,可悲啊!
補漏洞方法主要有兩類:
一、本身補救。這種補漏洞方法主要是靠廠商的補丁或者是禁用某項服務來補救。也就是說,靠軟體或系統本身來補救。
二、借助補救。這種補漏洞方法主要是靠第三者完成,就是靠別的軟體來進行補救。我們用得最廣泛的就是反病毒軟體和網路防火牆。
軟體的補救必須要有目的的補救,不能盲目的補。在補救前,我們可以借助別的軟體來測試。例如,查找網路漏洞,可以用嗅探器;查找反病毒軟體的查毒漏洞,可以通過網路上提供的病毒壓縮包等。
漏洞是客觀存在的,它是隨軟體和系統的產生的,是不可避免的。關鍵就在於補救,補救得好,軟體或系統的性能將大大提高!努力吧,同志們。
軟體安全首重輸入及輸出的檢查; 尤其是Web應用, 不能只考慮功能, 也要考慮SQL Injection 及 Cross-Site Script的問題.